Cuando tenemos que concatenar strings en bucle, en vez de hacerlo directamente con el operador + es mas óptimo hacerlo con un StringBuilder.
Si solo vamos a concatenar un string aislado (sin que sea una operación repetitiva), podríamos hacerlo directamente con el operador +.
En el siguiente ejemplo se muestra una concatenación en bucle, comparando el método con el operador de concatenación con el StringBuilder:
using MonitoringLib;
using static System.Console;
int[] numbers = Enumerable.Range(0, 50_000).ToArray();
WriteLine("String con +");
Recorder.Start();
string s = string.Empty;
for (int i = 0; i < numbers.Length; i++)
{
s+= numbers[i] + ", ";
}
Recorder.Stop();
WriteLine("String con stringBuilder");
Recorder.Start();
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int i = 0; i < numbers.Length; i++)
{
sb.Append(numbers[i]);
sb.Append(", ");
}
Recorder.Stop();
Como se puede ver en la ejecución, con el operador +, tarda unos 4.700 milisegundos mientras que con el StringBuilder tarda 1 milisegundo.
C# | StringBuilder